package mpc;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

public class MyMenuBar extends JMenuBar implements ActionListener {
	public MyMenuBar(){
		JMenu menu = new JMenu("Файл");
		JMenuItem loadFromFile = new JMenuItem("Загрузить лабиринт из файла...", new ImageIcon("images/openFile.gif"));
		loadFromFile.setActionCommand("loadFromFile");
		loadFromFile.addActionListener(this);
		
		JMenuItem SaveInFile = new JMenuItem("Сохранить в файл...", new ImageIcon("images/SaveFile.gif"));
		SaveInFile.setActionCommand("saveInFile");
		SaveInFile.addActionListener(this);
		
		menu.add(loadFromFile);
		menu.addSeparator();
		menu.add(SaveInFile);
		
		this.add(menu);
		
		menu = new JMenu("Справка");
		JMenuItem about = new JMenuItem("About");
		about.setActionCommand("about");
		about.addActionListener(this);
		menu.add(about);
		
		JMenuItem help = new JMenuItem("Справка");
		help.setActionCommand("help");
		help.addActionListener(this);
		menu.add(help);
		this.add(menu);
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		String com = arg0.getActionCommand();
		if(com == "about"){
			(new JOptionPane()).showMessageDialog(GUIClass.frame, "Эту программу написал Егоров Антон, 11А", "О программе", JOptionPane.INFORMATION_MESSAGE);
		} else if (com == "help") {
			(new JOptionPane()).showMessageDialog(GUIClass.frame, "Данная программа позволяет моделировать работу волнового алгоритма.\n" +
					"\u2013 В режиме 'Трассировка' можно сделать один шаг, тыкнув по полю, либо пройти всё сразу до конца\n" +
					"\u2013 Нижнее число в клетке означает, какой по номеру клетка была добавлена в очередь", "Справка", 
					JOptionPane.INFORMATION_MESSAGE);
		} else if(com == "loadFromFile"){
			JFileChooser fc = new JFileChooser("examples/");
			int state = fc.showOpenDialog(GUIClass.frame);
			if(state == JFileChooser.APPROVE_OPTION)
				try {
					GUIClass.VFIELD.loadFromFile(new Reader(fc.getSelectedFile()));
					ControlPanel.b3.setEnabled(GUIClass.VFIELD.isStartChoosen());
					ControlPanel.stepToEnd.setEnabled(GUIClass.VFIELD.isStartChoosen());
					GUIClass.pan.repaint();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
		} else if(com == "saveInFile"){
			JFileChooser fc = new JFileChooser("examples/");
			int state = fc.showSaveDialog(GUIClass.frame);
			if(state == JFileChooser.APPROVE_OPTION)
				try {
					GUIClass.VFIELD.setInFile(new PrintWriter(fc.getSelectedFile()));
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
		}
	}
}
